package com.bms.cfcmms.util.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * Created by carl on 2016/4/8.
 */

@Retention(RetentionPolicy.RUNTIME)
public @interface FieldDefine {

    /**
     * 字段的中文描述.
     */
    String title() default "";

    /**
     * 字段的顺序号.
     * <p>
     * <p>在grid中显示字段列表的时候默认按照顺序号排序，生成模块的form和grid字段的时候也是按顺序号来确定顺序
     * </p>
     */
    int number() default 0;

    /**
     * 字段的备注.
     * <p>
     * <p>可以显示在form中字段的label的tooltip上
     * </p>
     */
    String remark() default "";

    /**
     * 是否是此模块的名称字段.
     * <p>
     * <p>名称字段即可以用此名称来描述此条记录的字段，例如一个合同的合同名称，或一份订单的订单号，<br>
     * 在对记录作某些操作的时候的堤示信息中会加入这个字段的信息，<br>
     * 在form窗口中，会将名称字段的内容显示在title处；<br>
     * 在grid中会将选中的记录的名称字段内容显示在title中。
     * </p>
     */
    boolean nameField() default false;

    /**
     * 是否是隐藏字段.
     * <p>
     * <p>如果是的话，在form中会创建一个hiddenfield,在grid和查询的时候都不会加入此字段。<br>
     * </p>
     */
    boolean hidden() default false;

    /**
     * 字段的分组.
     * <p>
     * <p>在生成默认的form和grid的时候，会根据fieldGroup来进行分组。<br>
     * </p>
     */
    String fieldGroup() default "默认组";


    /**
     * 比较符号.
     * <p>
     * <p>是否是用来作为条件判断的字段，比如在某个字段前面显示
     * “等于”、“不等于”、“大于”“小于”等选择项<br>
     * </p>
     */
    boolean isEqual() default false;

}